package org.tea.inventory.db.domain;

//import com.fasterxml.jackson.annotation.JsonFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.math.BigDecimal;
//import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

public class News implements Serializable {

    private static final long serialVersionUID = 8928896177846277708L;

    private Integer id;
    // 六种类型：schoolInfo(校园动态)、alumniInfo(师生风采)、activity(校园活动)、lecture(讲座信息)、reading(悦读)、notice(公告管理)
    // 官网新闻模块新增3中类型：公司新闻: companyNews，行业资讯：industryInfo，公司动态：companyDynamic。dgtSiteNews 表示3中类型和合集，用于查询
    //商品兑换须知 goodsNotice  礼品兑换须知giftNotice
    private String type;
    private String title; // 文章标题
    private String subTitle; // 文章副标题，用于官网新闻模块
    private String pubDate; // 发布日期，用于官网新闻模块
    private String content; // 文章内容
    private int weight; //权重
    private String image; // 轮播图片
    private String file; // 附件地址
    private String fileName; //附件名称

    private LocalDateTime createDate; // 创建日期
    private LocalDateTime registStartDate; // 活动报名开始时间
    private LocalDateTime registEndDate; // 活动报名截止时间
    private LocalDateTime activityStartDate; // 活动开始时间
    private LocalDateTime activityEndDate; // 活动结束时间
    private String activityState; // 活动当前状态：报名进行中、报名已截止、报名待开始、活动进行中、活动已截止
    private int activityAuditState; // 活动审核状态：0-待审核、1-审核通过、2-审核被拒
    private String activityAddress; // 活动地址
    private String activity; // 活动标签(逗号分隔):吃吃喝喝,校园活动,...
    private LocalDateTime lectureStartDate; // 主讲时间
    private String lectureAddress; // 主讲地址
    private String lectureSpeaker; // 主讲地址
    private String creatorId; // 创建者Id
    private String creator; // 创建者名字
    private int orderIndex; // 排序下标
    private int activityForNews; // 活动新闻关联的活动Id
    private LocalDateTime activityForNewsDate; // 关联活动的时间
    private String activityForNewsAddress; // 关联活动的地址d
    private String activityForNewsFlag; // 关联活动的标签
    private BigDecimal activityCost; // 活动经费

    private boolean join; // 用于标识用户是否已参加了该活动

    private Integer[] organizeId; // 推送圈子id

    private NewsCriterion newsCriterion; // 查询条件信息

    private int commentCount; // 评论数量
    private int zanCount; // 点赞数量
    private int userCount; // 参加人数
    private int hadCount; // 是否点过赞

    private String universitarios; // 学位描述

    private String photo;

    private List<NewsComment> lstNewsComment; //评论列表
    private List<NewsZan> lstNewsZan; //点赞列表
    
    private Integer activityLimit;//活动的限制报名人数
    
    private String isAdmin;

    private String activityType;//校友活动类型（mail：邮寄）
    
    private List<Map<String, Object>>  listObject;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getFile() {
        return file;
    }

    public void setFile(String file) {
        this.file = file;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getCreateDate() {
        return createDate;
    }

    public void setCreateDate(LocalDateTime createDate) {
        this.createDate = createDate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getActivityStartDate() {
        return activityStartDate;
    }

    public void setActivityStartDate(LocalDateTime activityStartDate) {
        this.activityStartDate = activityStartDate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getActivityEndDate() {
        return activityEndDate;
    }

    public void setActivityEndDate(LocalDateTime activityEndDate) {
        this.activityEndDate = activityEndDate;
    }

    public String getActivity() {
        return activity;
    }

    public void setActivity(String activity) {
        this.activity = activity;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getLectureStartDate() {
        return lectureStartDate;
    }

    public void setLectureStartDate(LocalDateTime lectureStartDate) {
        this.lectureStartDate = lectureStartDate;
    }

    public String getLectureAddress() {
        return lectureAddress;
    }

    public void setLectureAddress(String lectureAddress) {
        this.lectureAddress = lectureAddress;
    }

    public Integer[] getOrganizeId() {
        return organizeId;
    }

    public void setOrganizeId(Integer[] organizeId) {
        this.organizeId = organizeId;
    }

    public String getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(String creatorId) {
        this.creatorId = creatorId;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getRegistStartDate() {
        return registStartDate;
    }

    public void setRegistStartDate(LocalDateTime registStartDate) {
        this.registStartDate = registStartDate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public LocalDateTime getRegistEndDate() {
        return registEndDate;
    }

    public void setRegistEndDate(LocalDateTime registEndDate) {
        this.registEndDate = registEndDate;
    }

    public int getOrderIndex() {
        return orderIndex;
    }

    public void setOrderIndex(int orderIndex) {
        this.orderIndex = orderIndex;
    }

    public NewsCriterion getNewsCriterion() {
        return newsCriterion;
    }

    public void setNewsCriterion(NewsCriterion newsCriterion) {
        this.newsCriterion = newsCriterion;
    }

    public String getActivityState() {
        return activityState;
    }

    public void setActivityState(String activityState) {
        this.activityState = activityState;
    }

    public int getActivityAuditState() {
        return activityAuditState;
    }

    public void setActivityAuditState(int activityAuditState) {
        this.activityAuditState = activityAuditState;
    }

    public int getActivityForNews() {
        return activityForNews;
    }

    public void setActivityForNews(int activityForNews) {
        this.activityForNews = activityForNews;
    }

    public boolean isJoin() {
        return join;
    }

    public void setJoin(boolean join) {
        this.join = join;
    }

    public int getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(int commentCount) {
        this.commentCount = commentCount;
    }

    public int getZanCount() {
        return zanCount;
    }

    public void setZanCount(int zanCount) {
        this.zanCount = zanCount;
    }

    public int getUserCount() {
        return userCount;
    }

    public void setUserCount(int userCount) {
        this.userCount = userCount;
    }

    public String getActivityAddress() {
        return activityAddress;
    }

    public void setActivityAddress(String activityAddress) {
        this.activityAddress = activityAddress;
    }
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public LocalDateTime getActivityForNewsDate() {
        return activityForNewsDate;
    }

    public void setActivityForNewsDate(LocalDateTime activityForNewsDate) {
        this.activityForNewsDate = activityForNewsDate;
    }

    public String getActivityForNewsAddress() {
        return activityForNewsAddress;
    }

    public void setActivityForNewsAddress(String activityForNewsAddress) {
        this.activityForNewsAddress = activityForNewsAddress;
    }

    public String getUniversitarios() {
        return universitarios;
    }

    public void setUniversitarios(String universitarios) {
        this.universitarios = universitarios;
    }

    public String getActivityForNewsFlag() {
        return activityForNewsFlag;
    }

    public void setActivityForNewsFlag(String activityForNewsFlag) {
        this.activityForNewsFlag = activityForNewsFlag;
    }

    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    public int getHadCount() {
        return hadCount;
    }

    public void setHadCount(int hadCount) {
        this.hadCount = hadCount;
    }

    public BigDecimal getActivityCost() {
        return activityCost;
    }

    public void setActivityCost(BigDecimal activityCost) {
        this.activityCost = activityCost;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public List<NewsComment> getLstNewsComment() {
        return lstNewsComment;
    }

    public void setLstNewsComment(List<NewsComment> lstNewsComment) {
        this.lstNewsComment = lstNewsComment;
    }

	public Integer getActivityLimit() {
		return activityLimit;
	}

	public void setActivityLimit(Integer activityLimit) {
		this.activityLimit = activityLimit;
	}

    public List<NewsZan> getLstNewsZan() {
        return lstNewsZan;
    }

    public void setLstNewsZan(List<NewsZan> lstNewsZan) {
        this.lstNewsZan = lstNewsZan;
    }

	public List<Map<String, Object>> getListObject() {
		return listObject;
	}

	public void setListObject(List<Map<String, Object>> listObject) {
		this.listObject = listObject;
	}

	public String getIsAdmin() {
		return isAdmin;
	}

	public void setIsAdmin(String isAdmin) {
		this.isAdmin = isAdmin;
	}

    public String getActivityType() {
        return activityType;
    }

    public void setActivityType(String activityType) {
        this.activityType = activityType;
    }

    public String getLectureSpeaker() {
		return lectureSpeaker;
	}

	public void setLectureSpeaker(String lectureSpeaker) {
		this.lectureSpeaker = lectureSpeaker;
	}

    public String getSubTitle() {
        return subTitle;
    }

    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    public String getPubDate() {
        return pubDate;
    }

    public void setPubDate(String pubDate) {
        this.pubDate = pubDate;
    }
}
